<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
        <title>Test Federated SPARQL</title>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js" type="text/javascript"></script>
        <script type="text/javascript">
/**
 * jquery.cookies.2.2.0.min.js.zip
 * Copyright (c) 2005 - 2010, James Auldridge
 * All rights reserved.
 *
 * Licensed under the BSD, MIT, and GPL (your choice!) Licenses:
 *  http://code.google.com/p/cookies/wiki/License
 *
 */
var jaaulde=window.jaaulde||{};jaaulde.utils=jaaulde.utils||{};jaaulde.utils.cookies=(function(){var resolveOptions,assembleOptionsString,parseCookies,constructor,defaultOptions={expiresAt:null,path:'/',domain:null,secure:false};resolveOptions=function(options){var returnValue,expireDate;if(typeof options!=='object'||options===null){returnValue=defaultOptions;}else
{returnValue={expiresAt:defaultOptions.expiresAt,path:defaultOptions.path,domain:defaultOptions.domain,secure:defaultOptions.secure};if(typeof options.expiresAt==='object'&&options.expiresAt instanceof Date){returnValue.expiresAt=options.expiresAt;}else if(typeof options.hoursToLive==='number'&&options.hoursToLive!==0){expireDate=new Date();expireDate.setTime(expireDate.getTime()+(options.hoursToLive*60*60*1000));returnValue.expiresAt=expireDate;}if(typeof options.path==='string'&&options.path!==''){returnValue.path=options.path;}if(typeof options.domain==='string'&&options.domain!==''){returnValue.domain=options.domain;}if(options.secure===true){returnValue.secure=options.secure;}}return returnValue;};assembleOptionsString=function(options){options=resolveOptions(options);return((typeof options.expiresAt==='object'&&options.expiresAt instanceof Date?'; expires='+options.expiresAt.toGMTString():'')+'; path='+options.path+(typeof options.domain==='string'?'; domain='+options.domain:'')+(options.secure===true?'; secure':''));};parseCookies=function(){var cookies={},i,pair,name,value,separated=document.cookie.split(';'),unparsedValue;for(i=0;i<separated.length;i=i+1){pair=separated[i].split('=');name=pair[0].replace(/^\s*/,'').replace(/\s*$/,'');try
{value=decodeURIComponent(pair[1]);}catch(e1){value=pair[1];}if(typeof JSON==='object'&&JSON!==null&&typeof JSON.parse==='function'){try
{unparsedValue=value;value=JSON.parse(value);}catch(e2){value=unparsedValue;}}cookies[name]=value;}return cookies;};constructor=function(){};constructor.prototype.get=function(cookieName){var returnValue,item,cookies=parseCookies();if(typeof cookieName==='string'){returnValue=(typeof cookies[cookieName]!=='undefined')?cookies[cookieName]:null;}else if(typeof cookieName==='object'&&cookieName!==null){returnValue={};for(item in cookieName){if(typeof cookies[cookieName[item]]!=='undefined'){returnValue[cookieName[item]]=cookies[cookieName[item]];}else
{returnValue[cookieName[item]]=null;}}}else
{returnValue=cookies;}return returnValue;};constructor.prototype.filter=function(cookieNameRegExp){var cookieName,returnValue={},cookies=parseCookies();if(typeof cookieNameRegExp==='string'){cookieNameRegExp=new RegExp(cookieNameRegExp);}for(cookieName in cookies){if(cookieName.match(cookieNameRegExp)){returnValue[cookieName]=cookies[cookieName];}}return returnValue;};constructor.prototype.set=function(cookieName,value,options){if(typeof options!=='object'||options===null){options={};}if(typeof value==='undefined'||value===null){value='';options.hoursToLive=-8760;}else if(typeof value!=='string'){if(typeof JSON==='object'&&JSON!==null&&typeof JSON.stringify==='function'){value=JSON.stringify(value);}else
{throw new Error('cookies.set() received non-string value and could not serialize.');}}var optionsString=assembleOptionsString(options);document.cookie=cookieName+'='+encodeURIComponent(value)+optionsString;};constructor.prototype.del=function(cookieName,options){var allCookies={},name;if(typeof options!=='object'||options===null){options={};}if(typeof cookieName==='boolean'&&cookieName===true){allCookies=this.get();}else if(typeof cookieName==='string'){allCookies[cookieName]=true;}for(name in allCookies){if(typeof name==='string'&&name!==''){this.set(name,null,options);}}};constructor.prototype.test=function(){var returnValue=false,testName='cT',testValue='data';this.set(testName,testValue);if(this.get(testName)===testValue){this.del(testName);returnValue=true;}return returnValue;};constructor.prototype.setOptions=function(options){if(typeof options!=='object'){options=null;}defaultOptions=resolveOptions(options);};return new constructor();})();(function(){if(window.jQuery){(function($){$.cookies=jaaulde.utils.cookies;var extensions={cookify:function(options){return this.each(function(){var i,nameAttrs=['name','id'],name,$this=$(this),value;for(i in nameAttrs){if(!isNaN(i)){name=$this.attr(nameAttrs[i]);if(typeof name==='string'&&name!==''){if($this.is(':checkbox, :radio')){if($this.attr('checked')){value=$this.val();}}else if($this.is(':input')){value=$this.val();}else
{value=$this.html();}if(typeof value!=='string'||value===''){value=null;}$.cookies.set(name,value,options);break;}}}});},cookieFill:function(){return this.each(function(){var n,getN,nameAttrs=['name','id'],name,$this=$(this),value;getN=function(){n=nameAttrs.pop();return!!n;};while(getN()){name=$this.attr(n);if(typeof name==='string'&&name!==''){value=$.cookies.get(name);if(value!==null){if($this.is(':checkbox, :radio')){if($this.val()===value){$this.attr('checked','checked');}else
{$this.removeAttr('checked');}}else if($this.is(':input')){$this.val(value);}else
{$this.html(value);}}break;}}});},cookieBind:function(options){return this.each(function(){var $this=$(this);$this.cookieFill().change(function(){$this.cookify(options);});});}};$.each(extensions,function(i){$.fn[i]=this;});})(window.jQuery);}})();        </script>
        <style type="text/css">
body
{
    width:100%;
    padding:0px;
    margin:0px;
    font-size:100%;
    font-family: Gill, Helvetica, sans-serif;
    background-color:#fcfdf7;
}

h1
{
    text-align:center;
    color:#566109;
}

h2
{
    color:#8a4b00;
}

h1 a
{
    font-weight:bold;
    color:#566109;
    text-decoration:none;
    border-bottom:dashed #566109 0.1em;
}

.parentdiv
{
    border:1px solid #bbb;
    background-color:#eff5d5;
    height:100%;
    overflow:auto;
    width:800px;
    margin-left: auto;
    margin-right: auto;
}

p
{
    margin-bottom:0px;
}

.parentdiv
{
    background-color:#eff5d5;
}

.leftpane
{
    float:left;
    height:100%;
    width:500px;
    background-color:#fcfdf7;
    margin:5px;
    padding:5px;
}

.rightpane
{
    padding:0.5em;
    width:260px;
    float:right;
    background-color:#fcfdf7;
    height:100%;
    margin:5px;
    padding:5px;
}

textarea
{
    width:495px;
    font-size:90%;
    font-family: Arial, sans-serif;
}

input[type=submit]
{
    border:1px solid #5d641f;
    background-color:#e7eacc;
}

input[type=submit]:hover
{
    background-color:#f4fda8;
    cursor:pointer;
}

#serverdetails
{
    margin-top:1em;
}
#serverdetails form {
    padding:1em;
}
        </style>
    </head>
    <body>
        <h1><a href="http://arnos.googlecode.com">arnos</a> test page</h1>
        <div class="parentdiv">
            <div class="leftpane">
                <h2>Query</h2>
                <form action="./projects/testproject/query" method="get" enctype="application/x-www-form-urlencoded">
                    <p>
                        <textarea name="query" rows="10">
PREFIX books:   <http://example.org/book/>
PREFIX dc:      <http://purl.org/dc/elements/1.1/>
SELECT ?book ?title
WHERE
  { ?book dc:title ?title }  LIMIT 10
                        </textarea>
                        <br/>

                    </p>
                    <p><input type="submit" value="Get SELECT Results" /></p>
                </form>
                <form action="./projects/testproject/query" method="post" enctype="application/x-www-form-urlencoded" id="updaterequest">
                    <p>
                        <textarea name="query" rows="10">
PREFIX dc:      <http://purl.org/dc/elements/1.1/>
INSERT { <http://example/egbook3> dc:title  "This is an example title" }
                        </textarea>
                        <br/>
                    </p>
                    <p>Endpoint ID:<input id="endpoint" value="966249ebcdc8fdda81f41d8f266725acbfa5cffa"/></p>
                    <p><input type="submit" value="POST SPARQL UPDATE" /></p>
                </form>
            </div>

            <div class="rightpane">
                <h2>Endpoint management</h2>
                <form action="./projects/testproject/endpoints" >
                    <input type="submit" value="List endpoints" />
                </form>

                <p>Add endpoint:</p>
                <form action="./projects/testproject/endpoints/add" method="post" enctype="application/x-www-form-urlencoded">
                    <input type="text" name="url" value="endpoint url"/>
                    <input type="submit" value="Submit" />
                </form>

                <br/>

                <p>Remove endpoint:</p>
                <form action="./projects/testproject/endpoints/remove?_method=delete" method="post" enctype="application/x-www-form-urlencoded">
                    <input type="text" name="url" value="endpoint url"/>
                    <input type="submit" value="Submit" />
                </form>
            </div>
        </div>

        <div id="serverdetails" class="parentdiv">
            <form>
                <label for="serveraddress">Server address</label>
                <input id="serveraddress" type="text" value="" style="width:250px"/>&nbsp;/
                <input id="project" type="text" value="" style="width:100px"/>
            </form>
        </div>

        <script type="text/javascript">
            if (typeof jQuery == "undefined")
            {
                alert("Jquery library not loaded");
            }

            var path;

            $(document).ready(function() {
              var arnos = $.cookies.get( 'arnos' ); 

              path = document.forms[0].action;
              path = path.substring(path.indexOf("projects/")+9);

              if (typeof arnos != "undefined" && arnos != null)
              {
                  $("#serveraddress").val( arnos.substring(0,arnos.lastIndexOf("/")) );
                  $("#project").val( arnos.substring(arnos.lastIndexOf("/")+1) );
              }
              else
              {
                  var fullpath = location.href;
                  var proj = "test.html";

                  var base = fullpath.substring(0,fullpath.indexOf(proj));
                  base += "projects";

                  $("#serveraddress").val( base );
                  
                  $("#project").val( path.substring(0,path.indexOf("/")) );
              }

              path = path.substring(path.indexOf("/"));
              path = document.forms[0].action.substring(0, document.forms[0].action.indexOf(path));

              $("#serveraddress,#project").change(function (){
                  $.cookies.set( 'arnos',  $("#serveraddress").val() + "/" + $("#project").val() );
              });
              
              $("form").submit(function() {
                  var arnos = $.cookies.get( 'arnos' );
                  if (arnos == null || typeof arnos == "undefined")
                  {
                      arnos = $("#serveraddress").val() + "/" + $("#project").val();
                  }
                  var action = this.action;
                  action = action.substring(action.lastIndexOf("/projects/")+10);
                  action = action.substring(action.indexOf("/"));
                  this.action = arnos + action;
              });

            $("#updaterequest").submit(function() {
                  var arnos = $.cookies.get( 'arnos' );
                  if (arnos == null || typeof arnos == "undefined")
                  {
                      arnos = $("#serveraddress").val() + "/" + $("#project").val();
                  }
                  var action = this.action;
                  action = action.substring(action.lastIndexOf("/projects/")+10);
                  action = action.substring(action.indexOf("/"));
                  this.action = arnos + "/" + $("#endpoint").val() + action;
              });
            });
        </script>
    </body>
</html>
